/*
  学习目标：接口类型
  作用：interface只能用来描述对象类型的数据结构
  与Type的区别：
  4. 规范👍 写法：以大写I字母开头，后面跟大写首字母： IPerson  ICat
  */

// 1. type可以描述任意类型, interface只能描述对象结构


// 2. interface可以用来继承其它的接口，达到复用类型的效果

const zs: IPerson = {
  name: 'zs',
  age: 18,
  gender: 'nan',
};

const Bet: IBlackPerson = {
  name: 'boerte',
  age: 30,
  gender: 'nan',
  run() {},
};


interface IBlackPerson extends IPerson {
  run(): void;
}


type MyArr = string[];
type MyObj = {
  name: string;
  age: number;
};

// 3. 同名接口会自动合并
interface IPerson {
  gender: string;
}
interface IPerson {
  name: string;
  age: number;
}